﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClasesLibreria.dominio
{
    public class Factura
    {
        public Factura()
        {
            UsuarioAlta = new Usuario();
            UsuarioAnulacion = new Usuario();
            Barrio = new Barrio();
            ListaItems = new List<FacturaItem>();
        }

        int _numero;

        public int Numero
        {
            get { return _numero; }
            set { _numero = value; }
        }
        Usuario _usuarioAlta;

        public Usuario UsuarioAlta
        {
            get { return _usuarioAlta; }
            set { _usuarioAlta = value; }
        }
        DateTime _fechaAlta;

        public DateTime FechaAlta
        {
            get { return _fechaAlta; }
            set { _fechaAlta = value; }
        }
        string _apellidoCliente;

        public string ApellidoCliente
        {
            get { return _apellidoCliente; }
            set { _apellidoCliente = value; }
        }
        string _nombreCliente;

        public string NombreCliente
        {
            get { return _nombreCliente; }
            set { _nombreCliente = value; }
        }
        string _calle;

        public string Calle
        {
            get { return _calle; }
            set { _calle = value; }
        }
        int _calleNumero;

        public int CalleNumero
        {
            get { return _calleNumero; }
            set { _calleNumero = value; }
        }
        Barrio _barrio;

        public Barrio Barrio
        {
            get { return _barrio; }
            set { _barrio = value; }
        }

        double _monto;

        public double Monto
        {
            get
            {
                _monto = 0;
                foreach (FacturaItem itm in ListaItems)
                {
                    _monto += itm.Cantidad * itm.PrecioUnitario;

                }
                return _monto;

            }
            //set { _monto = value; }
        }
        double _descuento;

        public double Descuento
        {
            get { return _descuento; }
            set { _descuento = value; }
        }
        Usuario _usuarioAnulacion;

        public Usuario UsuarioAnulacion
        {
            get { return _usuarioAnulacion; }
            set { _usuarioAnulacion = value; }
        }
        DateTime _fechaAnulacion;

        public DateTime FechaAnulacion
        {
            get { return _fechaAnulacion; }
            set { _fechaAnulacion = value; }
        }
        string _obervacionAnulacion;

        public string ObervacionAnulacion
        {
            get { return _obervacionAnulacion; }
            set { _obervacionAnulacion = value; }
        }

        List<FacturaItem> _listaItems;

        public List<FacturaItem> ListaItems
        {
            get { return _listaItems; }
            set { _listaItems = value; }
        }



        public void agregarItem(FacturaItem item)
        {
            ListaItems.Add(item);
        }

    }
}
